﻿
namespace Lib.Configuration.Entitys;
/// <summary>
/// 用户配置类
/// </summary>
[Serializable]
public partial class User {
    /// <summary>
    /// 构造函数
    /// </summary>
    public User() {  }
    /// <summary>
    /// 初始化默认值
    /// </summary>
    public void Initialize() {

        if (!Register.HasValue) {
            Register = true;
        }
        if (!AuthCode.HasValue) {
            AuthCode = true;
        }
        if (!ProveMode.HasValue) {
            ProveMode = 1;
        }
        if (!Min.HasValue) {
            Min = 6;
        }
        if (!Max.HasValue) {
            Max = 16;
        }
        if (!PresentExp.HasValue) {
            PresentExp = 0;
        }
        if (!PresentPoint.HasValue) {
            PresentPoint = 0;
        }
        if (!PresentMoney.HasValue) {
            PresentMoney = 0;
        }
        if (!Enabled.HasValue) {
            Enabled = true;
        }
        if (!MultiLogin.HasValue) {
            MultiLogin = true;
        }
        if (!LogOnAuthCode.HasValue) {
            LogOnAuthCode = true;
        }



        if (!LogOnErrorNumber.HasValue) {
            LogOnErrorNumber = 10;
        }
        if (!LogOnDisableMinute.HasValue) {
            LogOnDisableMinute = 10;
        }
        if (!LogOnType.HasValue) {
            LogOnType = 0;
        }
        if (!AccountType.HasValue) {
            AccountType = 0;
        }

        if (!TimeOut.HasValue) {
            TimeOut = 5;
        }
        if (!Exp.HasValue) {
            Exp = 0;
        }
        if (!Point.HasValue) {
            Point = 0;
        }
        if (!RetakeAccountType.HasValue) {
            RetakeAccountType = 0;
        }
        if (!RetakePasswordType.HasValue) {
            RetakePasswordType = 0;
        }
        if (!RetakeTimes.HasValue) {
            RetakeTimes = 0;
        }



    }
    /// <summary>
    /// 是否启用注册
    /// </summary>
    public bool? Register { get; set; }
    /// <summary>
    /// 是否启用验证码功能（注册）
    /// </summary>
    public bool? AuthCode { get; set; }
    /// <summary>
    /// 是否启用注册验证模式（0.注册通过、1.管理认证、2.邮件验证、3.手机验证、4.微信验证）
    /// </summary>
    public int? ProveMode { get; set; }
    /// <summary>
    /// 注册时用户名最少字符数
    /// </summary>
    public int? Min { get; set; }
    /// <summary>
    /// 注册时用户名最多字符数
    /// </summary>
    public int? Max { get; set; }
    /// <summary>
    /// 禁止注册的用户名（每个用户名请用“，”符号分隔）
    /// </summary>
    public string Disenable { get; set; }



    /// <summary>
    /// 注册时赠送积分
    /// </summary>
    public int? PresentExp { get; set; }
    /// <summary>
    /// 注册时赠送点券
    /// </summary>
    public int? PresentPoint { get; set; }
    /// <summary>
    /// 注册时赠送金钱
    /// </summary>
    public int? PresentMoney { get; set; }


    /// <summary>
    /// 是否允许用户登录
    /// </summary>
    public bool? Enabled { get; set; }
    /// <summary>
    /// 是否允许同一帐号多人登录
    /// </summary>
    public bool? MultiLogin { get; set; }
    /// <summary>
    /// 是否启用验证码功能（登录）
    /// </summary>
    public bool? LogOnAuthCode { get; set; }
    /// <summary>
    /// 允许出错次数（防登录猜测限制）
    /// </summary>
    public int? LogOnErrorNumber { get; set; }
    /// <summary>
    /// 超限后禁止登录时间(分钟)
    /// </summary>
    public int? LogOnDisableMinute { get; set; }
    /// <summary>
    /// 默认登录类型
    /// </summary>
    public int? LogOnType { get; set; }
    /// <summary>
    /// 限制登录帐户类型（0.不限制、1.只启用手机号登录、2.只启用邮箱登录、3.只启用用户名登录、4.只启用扫码登录）
    /// </summary>
    public int? AccountType { get; set; }
    /// <summary>
    /// 验证码、二维码有效分钟数
    /// </summary>
    public int? TimeOut { get; set; }



    /// <summary>
    /// 会员每登录一次奖励的积分（一天只计算一次）
    /// </summary>
    public int? Exp { get; set; }
    /// <summary>
    /// 会员每登录一次奖励的点券（一天只计算一次）
    /// </summary>
    public int? Point { get; set; }


    /// <summary>
    /// 找回密码的方式（回答正确答案后：0.直接修改密码、1.发送邮件（含修改密码页链接）到会员邮箱）
    /// </summary>
    public int? RetakePasswordType { get; set; }
    /// <summary>
    /// 找回帐号的方式（回答正确答案后：0.发送邮件（帐号信息）到会员邮箱、1.需求短信验证，验证后直接显示帐号信息）
    /// </summary>
    public int? RetakeAccountType { get; set; }
    /// <summary>
    /// 取回帐号或密码限制次数（0.无限制、 > 0 则24小时后才能再次使用取回帐号或密码功能）
    /// </summary>
    public int? RetakeTimes { get; set; }


    /// <summary>
    /// 点券名称（例如：点券、金币、钢币）
    /// </summary>
    public string PointName { get; set; }
    /// <summary>
    /// 点券单位（例如：点、个）
    /// </summary>
    public string PointUnit { get; set; }


}

